package com.lingnan.wanxiangxinxun.service;

import com.lingnan.wanxiangxinxun.entity.dto.query.NoticeDTO;
import com.lingnan.wanxiangxinxun.entity.po.Notice;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lingnan.wanxiangxinxun.entity.vo.client.UserNoticeVO;
import com.lingnan.wanxiangxinxun.entity.vo.common.PageVO;
import com.lingnan.wanxiangxinxun.entity.vo.common.Result;

import java.util.List;

/**
 * <p>
 * 消息通知表 服务类
 * </p>
 *
 * @author swl
 * @since 2025-04-30
 */
public interface INoticeService extends IService<Notice> {

    //新增通知（全服通知）
    Result addGlobalNotice(Notice notice);

    //新增通知（针对某个用户）
    Result addPersonalNotice(Notice notice);


    //用户删除已读消息
    boolean removeReadNotice(List<String> ids);


    //将通知设为已读
    boolean markNoticeAsRead(List<String> ids, Integer userId);


    //获取全服通知
    PageVO<Notice> getGlobalNotice(long current, long size);

    //根据用户id获取通知
    PageVO<UserNoticeVO> getNoticeByUserId(Integer userId, long current, long size);

    //根据条件获取通知
    PageVO<Notice> getNoticeInCondition(NoticeDTO noticeDTO);
}
